<?php

namespace App\Observers;

use App\Models\Comment;
use App\Notifications\CommentNotification;

class CommentObserver
{
    public function created(Comment $comment)
    {
        //通过comment模型中的relaionModel()方法可以获取当前评论对应的模型对象
//        当用户create创建成功一条评论后,相应文章的comment_num要增加1
        $comment->relationModel->increment('comment_num',1);
        //评论相应文章的comment_num增加1之后,给这篇文章的作者发送一条站内通知
        //通过$comment->relationModel可以得到评论的主体对象,在通过评论主体对象关联关系的动态属性user可以获取到文章的作者对象
        $comment->relationModel->user->notify(new  CommentNotification($comment));
    }

    /**
     * Handle the comment "updated" event.
     *
     * @param  \App\Models\Comment  $comment
     * @return void
     */
    public function updated(Comment $comment)
    {
        //
    }

    /**
     * Handle the comment "deleted" event.
     *
     * @param  \App\Models\Comment  $comment
     * @return void
     */
    public function deleted(Comment $comment)
    {
        //用户删除谋篇贴子的一条评论后,通过Comment模型对象将相应的评论删除之后需要将文章表中相应文章的comment_num数减1
        $comment->relationModel()->decrement('comment_num',1);
    }

    /**
     * Handle the comment "restored" event.
     *
     * @param  \App\Models\Comment  $comment
     * @return void
     */
    public function restored(Comment $comment)
    {
        //
    }

    /**
     * Handle the comment "force deleted" event.
     *
     * @param  \App\Models\Comment  $comment
     * @return void
     */
    public function forceDeleted(Comment $comment)
    {
        //
    }
}
